﻿#ifndef CPEBAR_H
#define CPEBAR_H

#include "cpebar_global.h"
#include <QWidget>

namespace Ui
{
class CpeBar;
}

class CPEBAR_EXPORT CpeBar : public QWidget
{
    Q_OBJECT

public:
    explicit CpeBar(QWidget *parent = nullptr);
    ~CpeBar();

    /**
     * @brief init      初始化进度条控件
     * @param iMin      最小值
     * @param iMax      最大值
     * @param iR1       第1分段
     * @param iR2       第2分段
     * @param iR3       第3分段
     * @param iR4       第4分段
     * @param strUnit   单位
     * @param bReverse  反向
     * @param bSingle   单个颜色
     */
    void init(int iMin, int iMax, int iR1, int iR2, int iR3, int iR4, QString strUnit, bool bReverse, bool bSingle);

    /**
     * @brief setCur     设置当前值
     * @param strCur    当前值
     */
    void setCur(const QString &strCur);

    /**
     * @brief getCur    获取当前值
     * @return          当前值
     */
    const QString& getCur() const;

    /**
     * @brief paintEvent
     */
    void paintEvent(QPaintEvent *) override;

private:
    Ui::CpeBar *ui;
    bool m_bReverse;                //false:值越大越绿  true:值越小越绿
    bool m_bSingle;                 //保持单色
    int m_iR1, m_iR2, m_iR3, m_iR4; //颜色分段阈值
    int m_iMin, m_iMax;             //最小值，最大值
    float m_fFontScale;             //字体相对高度的比例
    QString m_strCur;               //当前值
    QString m_strUnit;              //单位
    QFont m_font;
};

#endif // CPEBAR_H
